let timeout = null

const maxLengthTip = {
  bind(el, binding, vnode) {
    // 确保 el-input 组件已挂载
    vnode.context.$nextTick(() => {
      // 获取输入框的实际 maxLength
      const maxLength = binding.value || el.getAttribute('maxlength') || 255 // 默认最大长度为 255

      // 为输入框添加 input 事件监听器
      el.querySelector('input').addEventListener('input', function() {
        // 检查输入长度
        if (this.value.length >= maxLength) {
          // 如果定时器存在，则清除它
          if (timeout !== undefined) {
            clearTimeout(timeout)
          }

          // 设置新的定时器
          timeout = setTimeout(function() {
            // 显示提示信息
            vnode.context.$message({
              message: '输入已达到最大长度',
              type: 'warning'
            })
          }, 1000)

          // 可选：阻止进一步输入（但请注意，这可能会影响用户体验）
          this.value = this.value.slice(0, maxLength)
        }
      })
    })
  },
  // unbind 钩子中移除事件监听器
  // unbind(el) {
  //   el.querySelector('input').removeEventListener('input')
  // }
}
export default maxLengthTip
